// pages/cart/index.js 

import {showToast,showModal,requestPayment } from '../../utils/asyncWx.js'
import regeneratorRuntime from "../../lib/runtime/runtime.js"; 
import {request} from "../../request/index.js"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    address:{},
    cart:[], 
    totalPrice:0,
    totalNum:0
  },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
      // 1 获取缓存中的收货地址信息
      const address = wx.getStorageSync('address');  
      // 获取缓存中的购物车数据
      let cart = wx.getStorageSync("cart") || []; 
      //   过滤后的购物车数组
      cart = cart.filter(v=>v.checked) 

      //  总价格   总数量
      let totalPrice = 0;    
      let totalNum = 0; 
      cart.forEach(v=>{ 
        totalPrice += v.num * v.goods_price;
        totalNum += v.num; 
      })   
      // 2 给 data 赋值
      this.setData({ 
        address,
        cart, 
        totalPrice,
        totalNum
      })  
  },

  // 点击支付功能
  async handleOrderPay(){

    try{
       // 1 判断缓存 是否有token 
      const token = wx.getStorageSync('toekn');
      // 2 判断
      if(!token){
        wx.navigateTo({
          url: '/pages/auth/index' 
        }); 
        return;
      }   

      // 3 创建订单

      // 3.1 准备请求头参数
      // const header = {Authorization:token}
      // 3.2 请求体参数
      const order_price = this.data.totalPrice;
      const consignee_addr = this.data.address.all;
      const cart = this.data.cart;
      let goods = []
      cart.forEach(v=>goods.push({
        goods_id:v.goods_id,
        goods_number:v.num,
        goods_price:v.goods_price
      }))

      const orderParams = {order_price,consignee_addr,goods};
      // 4 准备发送请求
      // const {order_number} = await request({url:"/my/orders/create",method:"POST",data:orderParams});
      const order_number  = '这里是订单编号:1215145';
      // console.log(order_number)

      // 5 准备发起预支付的接口
      const {pay} = await request({url:"my/order",method:"POST",data:{order_number}});
      // 6 发起微信支付
      await requestPayment(pay);

      // 7 查询后台 订单状态是否支付成功
      const res =  await request({url:"my/checkorder",method:"POST",data:{order_number}})

      await showToast({
        title: '支付成功'
      });

      // 8  手动删除 缓存中 已经支付了的商品
      let newCart = wx.getStorageSync("cart");
      newCart = newCart.filter(v=>!v.checked);
      wx.getStorageSync("cart",newCart);

      // 8 支付成功 跳转到 订单页面
      wx.navigateTo({
        url: '/pages/order/index'
      })
        
    }catch(err){
      await showToast({
        title: '支付失败'
      });
      console.log(err)
    } 
  },
  

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})